home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume91 / shells / cshel510 / part04 / csh.doc.aa < prev   
Text File  |  1991-04-16  |  26KB  |  701 lines

  1.  
  2.         INSTRUCTIONS FOR SHELL VERSION: 5.10  11-Apr-1991
  3.         =================================================
  4.  
  5.   Contents
  6.   --------
  7.  
  8.     O.    Installation
  9.     I.    Description
  10.     II.    Overview of Major features
  11.     III.    Restrictions
  12.     IV.    PIPES
  13.     V.    Command Pre-processor
  14.     VI.    Command Line Editing
  15.     VII.    Function Keys
  16.     VIII.    Shell Commands
  17.     IX.    Special Set Variables
  18.     X.    Functions
  19.     XI.    Miscellaneous
  20.     XII.    Example source files
  21.     XIII.    Default values
  22.     XIV.    Object oriented features
  23.     XV.    Keymaps
  24.  
  25.  
  26.  
  27. O.  Installation
  28. ----------------
  29.  
  30. You  can  simply  invoke  csh  from  the  command  line or at the end of your
  31. startup-sequence,  because  csh  is, from the AmigaDOS standpoint, not a true
  32. shell  like  l:shell-seg.   Nevertheless,  csh is 'pure', so if your archiver
  33. forgot to set the 'p' bit, do it right now.
  34.  
  35. Proposed final setup:  If you want to make csh resident, do the following:
  36.  
  37. Kickstart 1.3
  38. 1. Copy csh anywhere on your (hard)disk, e.g. dh1:tools
  39. 2. Make sure your s:startup-sequence contains:
  40.     Resident CLI L:Shell-Seg SYSTEM PURE ADD
  41.     Resident dh1:tools/csh ADD
  42.     NewCLI FROM s:csh-startup
  43.     EndCLI
  44. 3. Put the following in s:csh-startup
  45.     csh -r s:firstlogin.sh
  46. 4. In s:firstlogin.sh, put any commands to be called only once, like setmap,
  47.    assign, setclock. This is a shell script, use # for comments, and don't
  48.    use .key type commands. At the end of this file, add
  49.     source s:login.sh
  50. 5. In s:login.sh, you put any commands that need to be invocated on every
  51.    invocation, like 'alias', 'set' and so on.
  52. 6. Put the following the s:cli-startup and s:shell-startup, so csh will be
  53.    started in any window opened by NewCLI or from workbench.
  54.     csh s:login.sh
  55.  
  56. Kickstart 2.0
  57. 1. Copy csh anywhere on your (hard)disk, e.g. dh1:tools
  58. 2. Make sure your s:startup-sequence contains:
  59.     Resident dh1:tools/csh ADD
  60.     csh s:firstlogin.sh
  61. 3. Proceed from step 4 in kickstart 1.3
  62.  
  63.  
  64. Additionally,  I  recommend  to  assign CSH:  somewhere and put your docs and
  65. cshell  scripts there.  You can do the assign from inside the shell, it's not
  66. needed at startup.
  67.  
  68.  
  69. I.  DESCRIPTION
  70. ---------------
  71.  
  72. This version of Shell is the successor of:
  73.     Shell V2.04 (C)Copyright 1986, Matthew Dillon, All Rights Reserved
  74.     Shell V2.04M-V2.07M by Steve Drew
  75.     Shell V2.08MI, V3.xxA and V4.xxA by Carlo Borreo & Cesare Dieni
  76.     Shell V5.xxL by Urban Mueller
  77.  
  78. If you have any wishes, bug reports or beer bottles, send them to:
  79.  
  80.        FIDONET :  AUGL BBS, 2:302/906
  81.        INTERNET:  umueller@iiic.ethz.ch
  82. or
  83.        Urban Mueller
  84.        Schulhausstrasse 83
  85.     CH-6312 Steinhausen
  86.        SWITZERLAND
  87.  
  88. Any sign of intelligent life welcome!
  89.  
  90. Please  check the 'restrictions' and 'known bugs' paragraphs before reporting
  91. any  bugs.  The support BBS is AUGL, +41 75 8 20 19, +41 75 8 20 18, +41 75 2
  92. 15 87 (all lines USRobotics HST) login='cshell', password='support'
  93.  
  94. For  versions prior to 5.00 send suggestions/criticism/anything else to Carlo
  95. Borreo or Cesare Dieni at:
  96.  
  97.        BITNET:  PERUGIA@ICNUCEVM.BITNET
  98.        FIDONET: 2:332/602.0@FIDONET
  99. or
  100.        Carlo Borreo            Cesare Dieni
  101.        Via G. Berio 34        Via G. Taddei 3
  102.        I-18100 Imperia        I-56100 Pisa
  103.        Italy            Italy
  104.  
  105. You may distribute this program unmodified and for non-profit only.
  106.  
  107. *** YOU MAY NOT MODIFY THIS PROGRAM AND REDISTRIBUTE IT ***
  108.  
  109. If  everyone  writes his own version of Shell and distributes it, we would be
  110. covered  by  Shell  versions.   If  you make a modification to Shell that you
  111. would  like  to  share  with  other users, please send us a DIFF output, or a
  112. description of what you need.
  113.  
  114. CREDITS
  115. -------
  116.  
  117. Arexx is a program by William Hawes.
  118. Cygnus Ed Professional (C) 1988 CygnusSoft Software.
  119.  
  120. Many  thanks  to  all  who  gave me feedback, namely Eddy Carroll, Patrizio
  121. Rusconi,  Allard  Siemelink,  Magnus Heldestad, Roddi Walker, Roy Haverman,
  122. Steve Koren, Randell Jesup and all I forgot to mention.
  123.  
  124.  
  125. II. OVERVIEW
  126. ------------
  127.  
  128. Shell  provides a convenient AmigaDos alternative command interface.  All its
  129. commands  are  internal  and  thus  does not rely on the c:  commands for any
  130. functionality.
  131.  
  132. Major features include:
  133.     - command line editing
  134.     - simple history
  135.     - piping
  136.     - aliases with arguments
  137.     - variables & variable handling (embedded variables)
  138.     - file name expansion via wild carding ('?', '*' and more)
  139.     - conditionals (if/else etc..)
  140.     - source files  (w/ gotos and labels)
  141.     - tab file name completion
  142.     - object oriented features (file classes, actions)
  143.     - many built in commands to speed things up
  144.     - full functionality on VT terminals
  145.     - freely programmable command line editing
  146.  
  147. Shell  runs  on  minimum stack, for recursive aliases and source files better
  148. increase stack to 8K or more.
  149.  
  150. If you use CShell for the first time, remember the following:
  151.     - CShell internal commands must be lowercase & can be abbreviated
  152.     - AmigaDOS command 'Execute' causes some trouble. You cannot redirect
  153.       it, you must not rename it, and you get no return code.
  154.       You can also use 'source' to start your scripts, but you'll have
  155.       to rewrite them a bit. Besides the '.key'-type commands, 'source' 
  156.       is downward compatible with 'Execute'.
  157.     - You can always get more information on a command if csh.doc is
  158.       in the current directoy or in csh: (you will be able to modify 
  159.       this) and you enter 'man <command>'
  160.  
  161.  
  162. III. RESTRICTIONS
  163. -----------------
  164.  
  165. The  following  applies only to Kickstart 2.0, and only to V36:  The INTERNAL
  166. commands cannot be started.  The same is true for the commands in C:  if they
  167. were  made  resident  using  the  AmigaDOS  'Resident' command (with cshell's
  168. 'resident' they work).  Thus, you should disable the INTERNAL residents using
  169. the -i0 startup option if you have a V36 Kickstart.
  170.  
  171. Under  1.3, you can't start AmigaDOS residents directly.  But you can use the
  172. -r  startup  option,  which  will  copy the AmigaDOS resident list to the arp
  173. resident  list once (and make those residents unremovable).  I'll try to find
  174. a better solution.
  175.  
  176. The  best  choice  under  both kickstarts is to make only csh itself AmigaDOS
  177. resident, all other commands, if any, ARP resident.  Under 1.3, you can start
  178. the  shell  (as any other commands) from the resident list only after you did
  179. 'resident CLI l:Shell-seg' and 'newcli'.
  180.  
  181. The  c:Execute command cannot be redirected, does not return error codes, and
  182. might cause other problems.  It will not work at all if it has been renamed.
  183.  
  184. The  VDK:  handler and Frank Seidel's BootRam-Handler have a bug with setting
  185. file  dates,  so  when  using  the  copy command you should try the -d and -p
  186. switches, otherwise your file date will be bad.  (This is not a shell bug)
  187.  
  188. If using with conman it you may consider starting shell with the -a switch to
  189. turn  off shell's command line editing and use conmans instead.  You'll lose,
  190. however, many shell features like TAB file name completion.
  191.  
  192. CB-handler  (a  tool that installs a scrollbar in the CLI window) is not 100%
  193. compatible  with  cshell.   The log will not always represent the real screen
  194. contents.
  195.  
  196.  
  197. IV. NOTES ON PIPES
  198. ------------------
  199.  
  200.     PIPES
  201.     PIPES  have  been implemented using temporary T:  files.  Thus, you
  202.     should be  careful  when  specifying  a 't:*' expansion as it might
  203.     include the temporary files. These files are deleted on completion
  204.     of the pipe segment.
  205.  
  206.     The file names used are completely unique, even with multiple shell
  207.     running simultaneously.
  208.  
  209.     My  favorite  new  feature is the fact that you can now redirect to
  210.     and  from,  and pipe internal commands.  'echo charlie >ram:x', for
  211.     instance.  Another favorite:
  212.  
  213.     echo "echo mem | csh" | csh
  214.  
  215.     No BCPL program should be output-append redirected (>>).
  216.  
  217.  
  218. V.  COMMAND PRE-PROCESSOR
  219. -------------------------
  220.  
  221.     PREPROCESSING
  222.     Preprocessing is done on the command line before it is passed on to
  223.     an internal or external routine:
  224.  
  225.     ^c    where c is a character is converted to that control character.
  226.         Thus, say '^l' for control-l.
  227.  
  228.     \233    insert character code 233 octal. Do not use values between
  229.         200o and 232o, as they have special meanings. \240 is the
  230.         word separator.
  231.  
  232.     $name    where name is a variable name.  Variable names can consist of
  233.         0-9, a-z, A-Z, and underscore (_).  The contents of the
  234.         specified variable is used.  If the variable doesn't exist,
  235.         the specifier is used.  That is, if the variable 'i' contains
  236.         'charlie', then '$i' -> 'charlie'.  If the variable 'i' doesn't
  237.         exist, then '$i'->'$i' .
  238.  
  239.     ;    delimits commands.   echo charlie ; echo ben.
  240.  
  241.     ' '    (a space). Spaces delimit arguments.
  242.  
  243.     "string" a quoted string. Trailing quotes are optional. For instance,
  244.         if you want to echo five spaces and an 'a':
  245.  
  246.         echo      a       -> a
  247.         echo "    a"      ->      a
  248.  
  249.     \c    overide the meaning of special characters.  '\^a' is a
  250.         circumflex and an a rather than control-a.  To get a backslash,
  251.         you must say '\\'.
  252.  
  253.         also used to overide alias searching for commands.
  254.  
  255.     >file    specify output redirection.  All output from the command is
  256.         placed in the specified file.
  257.  
  258.     >>file    specify append redirection (Does not work with BCPL programs).
  259.  
  260.     <file    specify input redirection. The command takes input from the
  261.         file rather than the keyboard (note: not all commands require
  262.         input; it makes no sense to say 'echo <charlie' since
  263.         the 'echo' command only outputs its arguments).
  264.  
  265.     |    PIPE specifier.  The output from the command on the left becomes
  266.         the input to the command on the right.  The current SHELL
  267.         implimentation uses temporary files to store the data.
  268.  
  269.     !!    execute the previously executed command.
  270.     !nn    (nn is a number).  Insert the history command numbered n (see
  271.         the HISTORY command)
  272.     !partial search backwards through the history list for a command which
  273.         looks the same as 'partial', and execute it.
  274.  
  275.     #    enter comment.  The rest of the line is discarded (note: \#
  276.         will, of course, overide the comment character's special
  277.         meaning)
  278.  
  279.     {e hi;e ho} executes two commands as one, so they can be redirected
  280.         as one, so they can be redirected together (see ALIAS
  281.         command). The traling curly brace is optional.
  282.  
  283.     $(foo)    insert the stdout of the command 'foo' at this position of
  284.         the command line. Every line of the output will count as one
  285.         argument. The closing parenthesis is optional.
  286.  
  287.     `foo`    insert the stdout of the command 'foo' at this position of
  288.         the command line. Every blank separated word will count as
  289.         one argument. The trailing backtick is optional.
  290.  
  291.     Please note the subtle differences between
  292.         alias count {echo one;echo two}
  293.         alias count "echo one;echo two
  294.     The first form will create an alias that contains a local alias. The
  295.     other will create a plain alias. Also, things within braces will not
  296.     be parsed more than once, therefore a backslash needs not be pre-
  297.     ceeded by a pair of backslashes. Thus the commands look the same as
  298.     if they were to be typed in at the prompt. To echo lots of '#', 
  299.     either use:
  300.         forever {echo \#
  301.         forever "echo \\\#
  302.     A block can spread over several line. Refer to the SOURCE command.
  303.  
  304.  
  305. VI. COMMAND LINE EDITING
  306. ------------------------
  307.  
  308.     o Command line can be up to 255 chars.
  309.     o Inserts  and  deletes  are handled correctly over multiple screen
  310.       lines.
  311.     o Shell  will  keep  track  of the line width should the window get
  312.       resized.
  313.  
  314.     EDITING
  315.  
  316.     -- MOVING --
  317.     Left Arrow      One character left
  318.     Right Arrow      One character right
  319.     Shift-Left Arrow  One word left
  320.     Shift-Right Arrow One word right
  321.     ESC-Left Arrow      Beginning of line (^A) (^Z)
  322.     ESC-Right Arrow      End of line       (^E)
  323.     -- DELETING --
  324.     Backspace      Previous character
  325.     Del          Character under cursor
  326.     ESC-Backspace      Previous word     (^W)
  327.     ESC-Del          Next word    
  328.     ESC-x-Backspace      To start of line  (^B)
  329.     ESC-x-Del      To end of line    (^K)
  330.     ESC-d          Entire line       (^X)
  331.     -- HISTORY --
  332.     Up Arrow      Recall previous commands
  333.     Down Arrow      Recall commands
  334.     Shift-Up Arow      Get history from partial (or number)
  335.     Shift-Down Arrow  Go below last command of history
  336.     ESC-Up Arrow      Get start of history
  337.     ESC-Down Arrow      Get end of history
  338.     ESC-!          Get history from partial (or number)
  339.     ^T          Insert tail (all but first word) of previous line
  340.     ^P          Duplicate previous word (useful for mv)
  341.     -- COMPLETION --
  342.     TAB          Inserts first matching file name
  343.     Shift-TAB      Inserts longest common substring
  344.     ESC-TAB          Inserts all matching file names
  345.     ESC-c          Does a quick cd on left word (TAB for cycling)
  346.     ESC-~          Inserts the last current directory
  347.     -- EXECUTING LINE --
  348.     Return          Executes line
  349.     ESC-Return      Executes this line of history & brings up next one
  350.     ^N          Next line. Don't exec this one but store history
  351.     ^\          EOF (directly exits)
  352.     -- MISCELLANEOUS --
  353.     ^L          Retype current line.
  354.     ^O          Echo a ^O
  355.     ^R          Repeat last command (don't play with this)
  356.     ^U          Undo/Redo last edit 
  357.     ESC-i          Toggle Insert/Overwrite
  358.     f1-f10          Execute command if variable exists.
  359.     F1-F10          More commands (Shifted f keys).
  360.     Help          Invokes help command
  361.  
  362. Whenever  the cursor is placed on or directly after an incomplete file name
  363. and   you  press  TAB,  CShell  inserts  for  the  first  filename  (sorted
  364. alphabetically)  that  matches  the name part already typed.  Any wildcards
  365. are allowed here, if none are given, '*' is appended.  Immediately pressing
  366. TAB  again  brings  up  the  next  file  name  that  matched the substring.
  367. Shift-TAB  will  only  insert  the  as  much as is common to all files that
  368. matched  you  abbreviation.   If  pressed  again,  behaves  just  like TAB.
  369. ESC-Tab  inserts  the  name  of the directory where you would have ended up
  370. with a quick cd to that substring.
  371.  
  372. Note  that  ^D  now  means  'quit  batchfile' like under AmigaDOS and is no
  373. longer used for quitting CShell. If you want it back, enter 'keymap 0 4=41'
  374.  
  375. The  CTRL  keys FGVY are unset, feel free to map them to any function (see
  376. chapter XV).  You can also remap all preset keys.
  377.  
  378. VII. FUNCTION KEYS
  379. ------------------
  380.  
  381.     FUNKEY
  382.     Function keys now insert text to the current position on the command
  383.     line. They maybe terminated with a ^M (return). f1 would be non shifted
  384.     where as F1 is shifted.
  385.     Most of functions key have a default definition, but it may be changed.
  386.  
  387.         $ set f1 dir df0:^M
  388.  
  389.     will add the text 'dir df0:<return>' to the current line.
  390.  
  391.         $ set f1 dir
  392.  
  393.     would only add 'dir' you could then enter ' df0:<return>'
  394.  
  395.  
  396. VIII. SHELL COMMANDS
  397. --------------------
  398.  
  399.     STARTUP OPTIONS
  400.     First to start shell from a CLI:
  401.  
  402.     shell [-abcfiknstv] [-c command;command]
  403.     shell [-abcfiknstv] [batchfile1 ... batchfileN]
  404.  
  405.      -a  AUX: mode. No command line editing and text highlighting
  406.      -b  starts shell in background, which means only task priority -1.
  407.      -c  allows execution of one command line and then exits out
  408.          of  shell.   This  is  useful for running an internal shell
  409.          commands in the background or from an external application:
  410.         Run csh -c "dir df0:; copy -r df0: df1: >nil:; echo Done"
  411.      -f  starts shell in foreground, which means only task priority 1.
  412.          you might reset this prioritiy to 0 at the end of your .login
  413.      -i0 disables INTERNAL residents. for V36 kickstarts.
  414.      -k  sets _nobreak before doing anything
  415.      -n  suppresses starting of s:.login
  416.      -r  copies the amiga resident list to the arp resident list. You
  417.          can't remove them anymore. No copying when under kick 2.0 or
  418.          if arp residents present.
  419.      -s  globally enables the star '*' as alias for #? in AmigaDOS 2.0
  420.      -t  terminal mode. You can use command line editing and text high-
  421.          lighting on a VT100 compatible terminal.
  422.      -v  sets _verbose to 'hs' before doing anything.
  423.  
  424.     Under 1.3, the best thing you can do is to make csh resident using
  425.     the AmigaDOS Resident command in the startup-sequence, then start
  426.     it with the option -r, so you can start another resident csh from
  427.     inside csh. NOTE: Residents copied using -r cannot be removed! I
  428.     advise you to use the internal resident command for all but csh
  429.     itself.
  430.  
  431.     COMMAND EXECUTION
  432.  
  433.     Internal shell commands are case sensitive and may be abreviated.
  434.  
  435.    The first argument is the command-name... here is (in order) how Shell
  436.    tries to execute it:
  437.  
  438.     1)  The alias list is searched for an alias with an exactly 
  439.         matching name.
  440.     2)  Internal commands list is scanned for a command even partially
  441.         matching name (so you can, for instance, say resi for resident;
  442.         however, you should specify enough of a command to be unique).
  443.     3)  Then, the list of functions is scanned for a command that
  444.         matches completely. If one is found, the result of the function
  445.         is echoed to stdout.
  446.     4)  Now the command is assumed to be external. Arguments with spaces
  447.         or empty strings will be surrounded by quotes.
  448.     5)  If the file is a directory, a 'cd <file>' will be performed to
  449.         it.
  450.     6)  AmigaDOS and ARP resident list are scanned for it (you can use
  451.         Shell's 'resident' command to add/remove a file in the ARP list).
  452.     7)  If the file is in the current directory and it's executable, it
  453.         is started.
  454.     8)  Then it is searched in the AmigaDOS path and c: (NOTE: Path
  455.         assigns to C: under Kickstart 2.0 don't work; use 'path')
  456.     9)  Now, the shell path ($_path) is searched. If it's found and 
  457.         executable, it's be started. If it has the 's' bit set, it will
  458.         be 'c:Execute'd.
  459.     10) If there exists a file with the suffix '.sh' and the same root
  460.         in the current directory or in the shell path, it is 'source'd.
  461.     11) Then the variable _rxpath is examined. If there exists a file
  462.         with the suffix '.rexx' and the same root in the current direc-
  463.         tory or in '$_rxpath', 'RX <file>' will be performed.
  464.     12) If all failed, an 'exec' action is sent to the file. See chapter
  465.         XIV for more info on classes and actions.
  466.  
  467.     To enforce that the external 'dir'-command is used, enter 'Dir'. Tt
  468.     is a good habit to uppercase the first letter of all external com-
  469.     mands, even if this is not necessary.
  470.  
  471.     AUTOMATIC SOURCING may be accomplished by naming shell scripts with
  472.     a  .sh  suffix.   Thus,  if you say 'stuff' and the file 'stuff.sh'
  473.     exists in your current or anywhere in Shell search path (NOTE: won't
  474.     be found in the AmigaDOS path), it will be SOURCED  with all arguments
  475.     you  have given placed  in  the  $_passed variable. This is equivalent
  476.     to typing 'source stuff.sh'
  477.  
  478.     WILD CARD EXPANSION
  479.     Most shell commands will accept multiple arguments that can
  480.     be as a result of wild card expansion.  Also when calling
  481.     an external command shell will first expand any wild cards
  482.     to separate arguments.  If you wish to have the external command
  483.     handle it's own wild carding you will need to insert quotes
  484.     around the special wild card characters or use an alias (see
  485.     explanation of 'alias')
  486.  
  487.     eg.
  488.         arc a new.arc *.txt    - shell will expand and pass to arc
  489.         arc a new.arc "*.txt"    - let arc expand the wild cards.
  490.         alias arc "*a Arc $a"    - now shell will never expand
  491.  
  492.     Wildcards allowed:
  493.  
  494.     ?    match any single character
  495.     *    match any string
  496.     .../*    recursive search down ALL sub directories from current level
  497.     ~    exclude pattern matching specifier
  498.     !    synonym for ~, supported for compatibility
  499.     &    prefixed to patterns, ask confirmation for each file
  500.     []    character class
  501.     ~    the previous current directory (if separated)
  502.     Note that a pattern must contain a '?' or a '*', otherwise the other
  503.     special characters are not recognized. Furthermore, you cannot spe-
  504.     cify a single '?' as a pattern in the first argument to a command,
  505.     as this will be passed on to the command in order to show its usage.
  506.  
  507.     Examples:
  508.  
  509.     df0:.../*    all files in all directories on df0:
  510.     df0:.../!*.info    full directory tree of df0: but exclude
  511.             any ugly .info files.
  512.     !*.o !*.c    will result in ALL files matching since what
  513.             doesn't match the !*.o will match the !*.c
  514.     df1:&*        all files in root of df1:, but ask 
  515.             confirmation for each
  516.     *.[co]        all files ending in .c or .o
  517.     ~*.[co]        all files NOT ending in .c nor in .o
  518.     ~        the previous current directory
  519.     ~/*.c        all .c files in the previous current directory
  520.     ~//        the parent of the previous current directory
  521.     .        the current directory
  522.     ./foo.c        the same as foo.c
  523.     ..        the parent of the current directory
  524.     ../foo.c    the file foo.c in the parent directory
  525.  
  526.     Note that some commands prevent wild card expansion. These are:
  527.       - dir, rpn, whereis, window
  528.     Those commands will expand the wild cards themselves. This is why
  529.       dir @without( *.? , *.o )
  530.     will not work. Instead use:
  531.       set arg @without( *.? , *.o );dir $arg
  532.  
  533.     There is one exception to the rules given above: A single '?' as
  534.     the first argument will *not* expand in order to allow you to get
  535.     the usage of CLI and csh commands easily.
  536.  
  537.     The   following   symbols  are  not  yet  supported  by  wild  card
  538.     expansions, but are accepted in search -w:
  539.  
  540.     ( | )    OR matching
  541.     #    0 or more times the pattern following
  542.  
  543.     Examples:
  544.  
  545.     "k#a"        matches ka, kaa, kaaa, etc.
  546.     "hel(lo|p)"    matches hello or help.
  547.  
  548.  
  549. LIST OF COMMANDS:
  550. -----------------
  551.  
  552.     ABORTLINE
  553.     Usage    : abortline
  554.     Example    : echo a;abort;echo b
  555.     Results    : a
  556.  
  557.     Causes the rest of the line to be aborted. Intended for use in
  558.     conjunction with exception handling.
  559.  
  560.     ACTION
  561.     Usage    : action [-a] actionname file [arguments]
  562.  
  563.     Sends an action to a file. See chapter XIV CLASSES
  564.     Options:
  565.      -a (abort) returns 0 if failed and 1 if successful. Otherwise,
  566.                 normal error codes (10 or 11) are returned
  567.  
  568.     ADDBUFFERS
  569.     Usage    : addbuffers drive buffers [drive buffers ...]
  570.     Example    : addbuffers df0: 24
  571.  
  572.     Just like AmigaDOS addbuffer command, causes new buffers to be
  573.     allocated for disk I/O. Each buffer costs 512 bytes of memory,
  574.     CHIP memory if a disk drive.
  575.  
  576.     ALIAS
  577.     Usage    : alias [name [command string] ]
  578.     Example    : alias vt "echo Starting VT100;run sys:tools/vt100"
  579.  
  580.     Sets a name to be a string. You can alias a single name to a set
  581.     of commands if you enclose them in quotes as above. By simply
  582.     typing vt, the command line above would be executed.
  583.     Aliases may call each other, but direct recursion is prohibited,
  584.     so the following works: alias ls "ls -s"
  585.     To prevent alias replacement, enter: \ls
  586.  
  587.     By typing "alias name", you will get the alias for that name, while
  588.     with "alias" you get a list of all alias.
  589.  
  590.     ARGUMENT PASSING TO AN ALIAS:
  591.  
  592.     Usage    : alias name "%var[%var...] [ command_string ]"
  593.           alias name "*var[%var...] [ command_string ]"
  594.     Example    : alias xx "%q%w echo hi $q, you look $w
  595.           xx Steve great today
  596.     Results    : hi Steve, you look great today
  597.  
  598.     The second form of the alias command allows passing of arguments
  599.     to any position within the command string via use of a variable
  600.     name. To pass arguments to the end of a command string this method
  601.     is actually not necessary. These variables are local, so they don't
  602.     destroy another variable with the same name.
  603.     If you specify multiple arguments, every argument will be assigned
  604.     one word, and the last argument will be assigned the rest of the
  605.     command line.
  606.  
  607.     Using a '*' instead of the first '%' prevents wild card expansion:
  608.         alias zoo "*a zoo $a
  609.     To expand the wild cards after you got them, use
  610.         exec set a $a
  611.  
  612.     IMPLICIT ALIASES:
  613.  
  614.     Usage    : {command;command}
  615.           {%var command;command} arg arg
  616.     Example    : {%tmp echo $tmp $tmp} hello
  617.     Results    : hello hello
  618.  
  619.     Curly braces define a temporary aliases. They can be redirected as
  620.     a whole, can have arguments and local variables. They count as
  621.     one argument, even if there are blanks inside (as with quotes), and
  622.     they may be nested. Complex alias definitions can use the braces
  623.     instead of quotes, although this will add some calling overhead.
  624.     The closing curly brace is optional if at the end of line.
  625.     Example:
  626.  
  627.     alias assert {e "Are you sure? ";input -s sure
  628.  
  629.     ASCII
  630.     Usage    : ascii
  631.           ascii string
  632.  
  633.     If called without arguments, ascii outputs a complete ascii table.
  634.     Given a string, shows each character in ascii. Options:
  635.       -h shows numbers in hexadecimal
  636.       -o shows numbers in octal
  637.  
  638.     ASET
  639.     Usage    : aset name value
  640.     Example    : aset INCLUDE include:
  641.  
  642.     Set a variable in a way that is compatible with ARP/old Aztec set
  643.     command; this is completely different from ENV: Shell variable.
  644.  
  645.     ASSIGN
  646.     Usage    : assign
  647.           assign logical
  648.           assign [-lnp] logical1 physical1 [logical2 physical2 ... ]
  649.  
  650.     The first form shows all assigns.
  651.     The second form kills one assign.
  652.     The third form assigns logical1 to physical1 and so on. Options:
  653.      -l creates a late-binding assign under kick 2.0, normal otherwise
  654.      -n creates a non-binding assign under kick 2.0, normal otherwise
  655.      -p creates a path-assign under kick 2.0, cancelled otherwise
  656.     For definition of late/nonbinding, refer to your AmigaDOS manual.
  657.  
  658.     BASENAME
  659.     Usage    : basename var path
  660.     Example    : basename x df0:c/Dir    # sets x to "Dir"
  661.  
  662.     Sets var specified to basename of path.
  663.  
  664.     CAT
  665.     Usage    : cat [-n][file file....]
  666.     Example    : cat foo.txt
  667.  
  668.     Type the specified files onto the screen.  If no file is specified,
  669.     STDIN in used (note: ^\ is EOF).  CAT is meant to output text files
  670.     only. Specifying -n option you will get numbered lines.
  671.  
  672.     CD
  673.     Usage    : cd [path]
  674.           cd -g device1 [device2 [device3 ...]]
  675.  
  676.     Change your current working directory.  You may specify '..' to go
  677.     back one directory (this is a CD specific feature, and does not
  678.     work with normal path specifications).
  679.  
  680.     In most cases, you'll no more have to use the CD command. Just type
  681.     the desired directory at the prompt (very handy in conjunction with
  682.     file name completion). Typing a ~ alone on a command line cd's
  683.     to prevous current directory.
  684.  
  685.     There are two situations left when you still need it:
  686.  
  687.     Entering 'cd *tem' will cd to the first name matched.
  688.  
  689.     The second form generates a list (an ascii file) of all direc-
  690.     tories on the given devices. It will be stored in the file given
  691.     in $_qcd (default: 'csh:csh-qcd'). Note that this ascii file  will
  692.     not be merged but overwritten. Once you have generated this file,
  693.     you can cd to any directory on your harddisk(s) even if it's not
  694.     in the current directory.
  695.     If you have two directories of the same name and you use one of
  696.     them more, move the more important one to the beginning of the
  697.     qcd file. You might also sort the file.
  698.     It is legal to type just an abbreviation of the directory name
  699.     you want to cd to. No asterisk '*' necessary. If you end up in
  700.     the wrong directory, cd to the same directory again (best done
  701.